import os

def extract_and_save_bin_file(input_file_path, output_file_path, start_position):
    """
    从现有的 bin 文件中截取一段数据并保存为新的 bin 文件。

    :param input_file_path: 原始 bin 文件的路径
    :param output_file_path: 新 bin 文件的路径
    :param start_position: 截取开始的位置（字节）
    """
    # 获取原始文件的大小
    file_size = os.path.getsize(input_file_path)

    # 打开原始 bin 文件进行读取
    with open(input_file_path, 'rb') as input_file:
        # 移动到截取开始的位置
        input_file.seek(start_position)

        # 读取指定长度的数据
        data_to_write = input_file.read(file_size - start_position)
        # 打开新文件进行写入
        with open(output_file_path, 'wb') as output_file:
            # 写入截取的数据
            output_file.write(data_to_write)

if __name__ == '__main__':
    input_path = r'D:\liuzhibiao\workspace_iar\ST模块下载工具\ST8500_images_loading\PAGST02-0-0(241227S)_merge.bin'  # 替换为你的原始 bin 文件路径
    output_path = r'D:\liuzhibiao\workspace_iar\ST模块下载工具\ST8500_images_loading\PAGST02-0-0(241227S)_merge2.bin'  # 替换为你想要保存的新 bin 文件路径
    start_pos = 0x20000  # 从这个位置开始截取
    extract_and_save_bin_file(input_path, output_path, start_pos)